<?php 

class ocorrencia_searchformModel extends Model{
    
    private $form = array(
        'plugin' => array(
            'type'    => 'enum',
            'name'    => 'Filtros',
            'especial'=> 'multi_enum',
            'description' => 'Selecione um dos filtros abaixo',
            'default' => array('usuario_usuario'),
            'options' => array(
                'ocorrencia_grupo'    => 'Grupos',
                'ocorrencia_status'   => 'Por Status',
                'ocorrencia_campos'   => 'Por campo',
                'filtro_data'         => 'Por data',
                'ocorrencia_mensagem' => 'Por Mensagem',
                'usuario_usuario'     => 'Usuários',
            )
        ),

        'data_inicio' => array(
            'name'     => 'Data inicial',
            'type'     => 'date',
            'especial' => 'calendar',
            'description' => 'Datas a partir do dia',
        ),

        'data_fim' => array(
            'name'     => 'Data final',
            'type'     => 'date',
            'especial' => 'calendar',
            'description' => 'Datas até o dia',
        ),

        'ocorrencia_grupo' => array(
            'name'        => 'Por Grupo',
            'type'        => 'enum',
            'description' => 'Selecionar dados por grupo de trabalho',
            'default' => 'all',
            'options' => array()
         ),

        'ocorrencia_status' => array(
            'name'        => 'Por Status',
            'type'        => 'enum',
            'description' => 'Filtrar os dados pelo Status do Assunto',
            'default' => array('all'),
            'options' => array(
                "all"         => 'Todas',
                "andamento"   => 'Em Andamento',
                'paralisado'  => 'Paralisadas',
                'cancelado'   => 'Canceladas',
                "atraso"      => 'Atrasadas',
                'concluido'   => 'Concluídas',
                "lixeira"     => 'Excluídas',
            )
        ),

        'ocorrencia_mensagem' => array(
            'name'        => 'Omitir resultados',
            'type'        => 'enum',
            'description' => 'Omitir Assuntos duplicadas quando encontrar mais de um resultado',
            'default' => 's',
            'options' => array(
                "s" => 'Sim',
                'n' => 'Não',
            )
        ),

        'ocorrencia_campos' => array(
            'name'        => 'Por Campo',
            'type'        => 'enum',
            'description' => 'Exibir resultados contendo apenas os campos selecionados',
            'default' => 'all',
            'options' => array(
                "all"          => 'Todos os campos',
                "assunto"      => 'Assunto do Assunto',
                'descricao'    => 'Descrição do Assunto',
                'status_label' => 'Nome do Status',
                'texto'        => 'Texto das mensagens',
             )
         ),
        
        'usuario_usuario' => array(
            'name'        => 'Por Usuário',
            'type'        => 'enum',
            'description' => 'Exibir Assuntos onde o usuário selecionado participa de alguma forma (solicitante, participante, etc)',
            'default'     => 'participo',
            'options'     => array()
         ),
    );
    
    public function __construct() {
        $this->LoadModel("usuario/login", 'uobj');
        $this->LoadModel("ocorrencia/grupo", 'gobj');
        if(!$this->uobj->UserIsAdmin()){
            unset($this->form['usuario_usuario']);
            unset($this->form['plugin']['options']['usuario_usuario']);
            $grupos = $this->gobj->getGroups();
        }else {
            $grupos = $this->gobj->getAllGroups();
            
            $out = array();
            $temp = $this->uobj->selecionar(array('cod_usuario', 'user_name', 'user_cargo'));
            foreach($temp as $t){
                $out[$t['cod_usuario']] = $this->uobj->getUserNick($t);
            }
            asort($out);
            $out = array_reverse($out, true); 
            $out['all']       = 'Todos os Usuários';
            $out['participo'] = 'Somente onde Participo';
            $out = array_reverse($out, true); 
            $this->form['usuario_usuario']['options'] = $out;
            
        }

        if(!empty ($grupos)){
            //$user = $this->uobj->selecionar(array('usuario.cod_usuario', 'email'));        
            $out = array('all' => 'Todos os Grupos');
            foreach($grupos as $arr) $out[$arr['cod_grupo']] = $arr['nome'];
            asort($out);
            if(count($out) > 1) $this->form['ocorrencia_grupo']['options'] = $out;
            else unset($this->form['ocorrencia_grupo']);
        }else unset($this->form['plugin']['options']['ocorrencia_grupo']);
    }
    
    public function getForm(){
        return $this->form;
    }
    
}
?>